export interface UnityRole {
  id: string
  name: string
  chineseName: string
  introduced?: string
  color: string
  unity: string
}

export const UnityRoleTheme: UnityRole[] = [
  {
    id: '006',
    name: 'PanPan6',
    chineseName: '盼盼',
    color: '#040C37',
    introduced: '全国大学生商务谈判大赛\n-----------------咨询助手',
    unity: '/unity/VirtualNegotiation/index.html'
  },
  {
    id: '001',
    name: 'HuangHuang',
    chineseName: '欢欢',
    color: '#040C37',
    introduced: '全国大学生商务谈判大赛\n-----------------咨询助手',
    unity: '/unity/VirtualNegotiation/index.html'
  }
]

/**
 * 根据角色 ID 获取对应的 Unity 角色信息。
 *
 * @param id 角色的唯一标识符，类型为字符串。
 * @returns 返回一个 UnityRole 类型的对象，表示相应的角色信息。
 */
export const getUnityRoleById = (id: string): UnityRole => {
  // 在 UnityRoleTheme 数组中查找具有指定 id 的角色
  const unityRole: UnityRole | undefined = UnityRoleTheme.find((role) => role.id === id)
  // 如果找到了对应的角色，则返回该角色信息
  // 如果未找到对应的角色，返回 UnityRoleTheme 数组中的第一个元素作为默认值
  // 使用类型断言确保 unityRole 不为 undefined
  return (unityRole as UnityRole) || UnityRoleTheme[0]
}

/**
 * 根据角色名获取Unity角色信息。
 *
 * @param name 角色的名字，根据isChinese参数决定是中文名还是英文名。
 * @param isChinese 是否以中文名进行搜索的标志，默认为false，表示搜索英文名。
 * @returns 返回一个UnityRole类型的对象，表示找到的角色信息。
 */
export const getUnityRoleByName = (name: string, isChinese: boolean = false): UnityRole => {
  // 根据isChinese标志，决定是搜索中文名还是英文名
  const unityRole: UnityRole | undefined = isChinese
    ? UnityRoleTheme.find((role) => role.chineseName === name)
    : UnityRoleTheme.find((role) => role.name === name)

  // 如果找到了对应的角色，则返回该角色信息
  // 如果未找到对应的角色，返回 UnityRoleTheme 数组中的第一个元素作为默认值
  // 使用类型断言确保 unityRole 不为 undefined
  return (unityRole as UnityRole) || UnityRoleTheme[0]
}
